var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"} 

function isCardID(sId){ 
	var iSum=0 ;
	var info="" ;
	if(!/^\d{17}(\d|x)$/i.test(sId)) return false; 
	sId=sId.replace(/x$/i,"a"); 
	if(aCity[parseInt(sId.substr(0,2))]==null) return  false; 
	sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2)); 
	var d=new Date(sBirthday.replace(/-/g,"/")) ;
	if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return   false; 
	for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11) ;
	if(iSum%11!=1) return  false; 
	return true;//aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女") 
} 


$.extend($.fn.validatebox.defaults.rules, {   
	 idcared: {   
	        validator: function(value,param){  
	    		var flag= isCardID(value);
	            return flag==true?true:false;  
	        },   
	        message: '不是有效的身份证号码'  
	    },
    phoneNum: { //验证手机号   
        validator: function(value, param){ 
        return /^1[3-8]+\d{9}$/.test(value);
        },    
        message: '请输入正确的手机号码。'   
	},
    numBetween: { //验证数字范围   
        validator: function(value, param){ 
	        if(value < param[0] || value > param[1]){
	        	return false;
	        } else {
	        	return true;
	        }
        } 
	},
    onlyNumChar: { //数字和字母组成
        validator: function(value, param){ 
        	var reg = /^[0-9a-zA-Z]*$/g.test(value)
        	console.log(reg)
            return /^[0-9a-zA-Z]*$/g.test(value);
        },    
        message: '只能由数字和字母组成'  
	},
	checkUnique:{
		 validator: function(value, params){ 
			 console.log('params',params)
			 var param = params[1];
			 var result = false;
			 $.ajax({
			        async: false,
		            url : params[0],
		            data : {
		            	[param] : value
		            },
		            dataType:'json',
		            success : function(res) {
		            	console.log('res',res)
		            	result = (res.success == 0);
			        }
			    });
			    // 这里的result只有2个值：true / false
			    return result;
		 },
		 message: '{2}'  
	},
	checkTwoFloat: { //两位小数
        validator: function(value, param){ 
        	return /^([0-9]+[\d]*(.[0-9]{1,2})?)$/.test(value);
        },    
        message: '只能输入正整数且最多只能保留两位小数'   
	},
	checkMin:{
		validator: function(value, param){ 
			const minVal = param[0]
        	return !(value < minVal);
        },    
        message: '不能小于{0}'   
	}
	
});